﻿using System;
using System.ComponentModel.DataAnnotations;

namespace ScrumPilot.Domain.Models
{
    public class Main
    {
        [Required]
        [Display(Name = "Team Foundation Server Address (name or IP)")]
        [DataType(DataType.Text)]
        public String TFSUrl { get; set; }

        [Display(Name = "Team Foundation Server SubDirectory (usually tfs)")]
        [DataType(DataType.Text)]
        public String TFSSubDir { get; set; }

        [Required]
        [Display(Name = "Team Foundation Server Port Address (usually 8080)")]
        [DataType(DataType.Text)]
        public String TFSPort { get; set; }

        [Required]
        [Display(Name = "Team Foundation Server User (must be admin)")]
        [DataType(DataType.Text)]
        public String TFSID { get; set; }

        [Required]
        [Display(Name = "Team Foundation Server User Password")]
        [DataType(DataType.Password)]
        public String TFSPWD { get; set; }

        [Display(Name = "ScrumPilot WebService address (must be accessible from TFS)")]
        [DataType(DataType.Text)]
        public String ScrumPilotWSAdress { get; set; }

        [Display(Name = "Dashboard Type")]
        public Byte DashBoardType { get; set; }

        [Display(Name = "Bug Normal Level")]
        public int BugNormalLevel { get; set; }

        [Display(Name = "Bug Orange Level")]
        public int BugOrangeLevel { get; set; }

        [Display(Name = "Bug Red Level")]
        public int BugRedLevel { get; set; }

        [Display(Name = "Test ToDo Normal Level")]
        public int TestToDoNormalLevel { get; set; }

        [Display(Name = "Test ToDo Orange Level")]
        public int TestToDoOrangeLevel { get; set; }

        [Display(Name = "Test ToDo Red Level")]
        public int TestToDoRedLevel { get; set; }

        [Display(Name = "Kanban max User Stories in 'Doing' phase (let 0 if you don't use Kanban)")]
        public int KanbanMaxDoingLevel { get; set; }

        [Display(Name = "Kanban max User Stories in 'To Test' phase (let 0 if you don't use Kanban)")]
        public int KanbanMaxToTest { get; set; }

        [Display(Name = "Yammer API client id")]
        [DataType(DataType.Text)]
        public String YammerConsumerKey { get; set; }

        [Display(Name = "Yammer API client secret")]
        [DataType(DataType.Password)]
        public String YammerConsumerSecret { get; set; }

        [Display(Name = "Yammer Group for publishing")]
        public int YammerGroup { get; set; }

        [Display(Name = "Yammer default topic for publishing (let blank if you don't want topic)")]
        [DataType(DataType.Text)]
        public String YammerTopic { get; set; }
    }
}
